from django.db import models


# Create your models here.


# 创建数据库模型类
class Users(models.Model):
    id = models.AutoField(primary_key=True, verbose_name='id')
    username = models.CharField(max_length=20, verbose_name='用户名', unique=True, null=False)
    password = models.CharField(max_length=20, verbose_name='密码')
    email = models.EmailField(verbose_name='邮箱')

    class Meta:
        db_table = 'users'
        verbose_name = '用户'
        verbose_name_plural = verbose_name


# 一对一表创建:
"""
我们定义了两个Django模型：`Author`和`Profile`。
`Profile`模型通过`OneToOneField`与`Author`模型建立了一对一的关系。
这意味着每个`Author`实例最多只能有一个`Profile`实例，并且每个`Profile`实例只对应一个`Author`实例。



class Author(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'author'


class Profile(models.Model):
    author = models.OneToOneField(Author, on_delete=models.CASCADE)
    bio = models.TextField()
    birth_date = models.DateField(null=True, blank=True)

    def __str__(self):
        return self.author.name

    class Meta:
        db_table = 'profile'
"""


# 一对多表创建：
"""
class ClassRoom(models.Model):
    # 班级名
    name = models.CharField(max_length=50)

    def __str__(self):
        return self.name


class Student(models.Model):
    # 学生姓名
    name = models.CharField(max_length=50)
    # 年龄
    age = models.IntegerField()
    # 与ClassRoom的一对多关系，on_delete=models.CASCADE表示当班级被删除时，该班级下的所有学生也会被删除
    classroom = models.ForeignKey(ClassRoom, on_delete=models.CASCADE)

    def __str__(self):
        return self.name
"""

# 多对多表创建：
"""
class Course(models.Model):
    # 课程名
    name = models.CharField(max_length=50)

    def __str__(self):
        return self.name


class Student(models.Model):
    # 学生姓名
    name = models.CharField(max_length=50)
    # 年龄
    age = models.IntegerField()
    # 多对多关系字段，与Course关联
    courses = models.ManyToManyField(Course)

    def __str__(self):
        return self.name
        
"""
